#include "String.h"
#include <cassert>

char& String::operator[](int index) const{
	assert(index>=0 && index<_size);
	return _string[index];
}
String& String::operator=(const char *s){
	if(s){
		_size=strlen(s);
		delete[] _string;
		_string=new char[_size+1];
		strcpy(_string,s);
	}else{
		_size=0;
		delete[] _string;
		_string=0;
	}
	return *this;
}
String& String::operator=(const String &s){
	if(s._string){
		_size=s._size;
		delete[] _string;
		_string=new char[_size+1];
		strcpy(_string,s._string);
	}else{
		_size=0;
		delete[] _string;
		_string=0;
	}
	return *this;
}
bool operator==(const String &str1, const String &str2){
	if(str1._size != str2._size)
		return false;
	return strcmp(str1._string,str2._string)?false:true;
}

bool String::operator==(const char *s) const{
	return strcmp(_string,s)?false:true;
}

String::String(const char *s){
	_size=strlen(s);
	_string=new char[_size+1];
	strcpy(_string,s);
}
String::String(const String &s){
	_size=s._size;
	_string=new char[_size+1];
	strcpy(_string,s._string);

}